A growing number of online services aim to store voluminous client data indefinitely. Examples include online backup services, email services, photo sharing sites, video hosting sites, and general archiving of information. Many of these services are free, and many charge fees for basic or upgraded versions of their services. Unfortunately, storage services have the potential to lose or corrupt client data.
Despite the seeming viability of online storage services, this technology has only been casually embraced because users have no way to assess the reliability of these services Clients seeking the services of reliable storage service providers (“storage providers”) may have only negative newsworthy anecdotes on which to base their decisions. A lack of bad publicity, however, may not be indicative of the actual reliability of the storage provider. Moreover, popularity may not be an accurate indicator of reliability. Today, clients are faced with making an uneducated choice when choosing a storage provider. A client may either blindly trust the storage provider or audit the data by laboriously retrieving the hosted data each time the integrity of the data is to be verified. Neither solution is satisfactory.
To make client-based auditing viable, a number of efficient challenge-response protocols have been proposed. These protocols establish trust between the storage provider and individual clients through repeatedly demonstrating that the clients' data are intact. If a storage provider loses or corrupts data, such protocols enable clients to quickly detect the fault and repair it using copies stored locally or by other storage providers. Client-based auditing, however, has two main disadvantages. First, it places the responsibility of data verification on a client. Some clients may view auditing as an undesirable burden and instead store and backup their data themselves. Second, typical clients, e.g. home users, are often unreliable. They may forget to check or lose valuable state needed to confirm the integrity of remotely stored data.